<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<jsp:include page="../comunes/header.jsp" />
<form:form method="POST" modelAttribute="pedido" enctype="multipart/form-data" onsubmit="return validarPedido();">
   <table id="tbl_pedido_head" class="tbl_formulario">
      <tr>
         <td><form:hidden path="fecha" /></td><th>Nuevo Pedido de pago Orden de Trabajo</th>
         <td><form:hidden path="llave.serie" /></td><td><form:hidden path="llave.numero" /></td>
      </tr>
      <tr><th>Proveedor:</th>
         <td>
            <form:select id="cmb_proveedor" path="proveedor.numero">
               <form:option value="${null}" label="Selecionar" />
               <form:options items="${proveedores}" itemLabel="valorMuestra" itemValue="numero" />
            </form:select>
            <form:errors path="proveedor" cssClass="error" />
         </td><th>R.F.C.:</th><td></td>
      </tr>
      <tr><th></th><td colspan="3"></td></tr>
      <tr><th>Flujo:</th>
         <td colspan="3">
            <form:select path="solicitud.flujo.clave">
               <form:options items="${flujos}" itemLabel="descripcion" itemValue="clave" />
            </form:select>
            <form:errors path="solicitud.flujo.clave" cssClass="error" />
         </td>
      </tr>
   </table><hr>DETALLE DE ORDENES DE TRABAJO:
   <div id="pnl_ots" class="wscroll"></div><hr>
   <button type="submit" class="btn_agregar" title="Agregar" name="agrega" value="agrega">Agregar</button>
   DETALLE DE FACTURAS:<br/> 
   <table id="tbl_pedido_facs" class="tbl_listado">
      <thead><tr><th>N&deg;/Folio</th><th>Concepto</th><th>Divisa</th>
            <th>Forma de Pago</th><th>#Inversion</th><th>Fecha Factura</th>
            <th>Importe S/IVA</th><th>IVA</th><th>Total</th><th>Archivo</th>
            <th>Opc.</th></tr></thead>
      <tbody>
         <c:set var="sumaSubtotal" value="${0}" />
         <c:set var="sumaIva" value="${0}" />
         <c:forEach items="${pedido.facturas}" var="factura" varStatus="i">
            <tr>
               <td>
                  <c:set var="sumaSubtotal" value="${sumaSubtotal+factura.subtotal}" />
                  <c:set var="sumaIva" value="${sumaIva+factura.montoIva}" />
                  <form:input path="facturas[${i.index}].llave.folio" size="12"/></td>
               <td><form:textarea path="facturas[${i.index}].concepto" /></td>
               <td><form:select path="facturas[${i.index}].moneda.clave" items="${monedas}" 
                            itemLabel="descripcion" itemValue="clave" /></td>
               <td><form:select path="facturas[${i.index}].formaPago">
                     <form:option value="C">Contado</form:option>
                     <form:option value="P">Plazos</form:option>
                  </form:select></td>
               <td><form:select path="facturas[${i.index}].razonSocial">
                     <form:option value="${null}">Seleccionar</form:option>
                     <form:options items="${inversiones}" itemLabel="descripcion" itemValue="clave" />
                  </form:select></td>
               <td><form:input path="facturas[${i.index}].fechaFactura" cssClass="fechaFactura" size="10" /></td>
               <td><form:input path="facturas[${i.index}].subtotal" size="12" cssClass="formato_numero txt_decimal subtotal" id="subtotal_${i.index}"/></td>
               <td><form:input path="facturas[${i.index}].montoIva" size="12" cssClass="formato_numero txt_decimal montoIva" id="montoIva_${i.index}"/></td>
               <td>
                  <span class="txt_total_fila total_fila_${i.index}"><c:out value="${factura.montoIva + factura.subtotal}" /></span>
               </td>
               <td><input type="file" name="anexosFactura[${i.index}]" /></td>
               <td><c:if test="${i.index > 0}">
                     <button type="submit" class="btn_eliminar" title="Eliminar Factura" 
                             name="borra" value="${i.index}">-</button>
                  </c:if>
                  <form:errors path="facturas[${i.index}].llave.folio" cssClass="error" />
                  <form:errors path="facturas[${i.index}].concepto" cssClass="error" />
                  <form:errors path="facturas[${i.index}].moneda.clave" cssClass="error" />
                  <form:errors path="facturas[${i.index}].formaPago" cssClass="error" />
                  <form:errors path="facturas[${i.index}].razonSocial" cssClass="error" />
                  <form:errors path="facturas[${i.index}].fechaFactura" cssClass="error" />
                  <form:errors path="facturas[${i.index}].subtotal" cssClass="error" />
                  <form:errors path="facturas[${i.index}].montoIva" cssClass="error" />
               </td>
            </tr>
         </c:forEach>
         <tr><td colspan="8" class="formato_numero">Total S/IVA:</td>
            <td>
               <span id="txt_suma_subtotal"><c:out value="${sumaSubtotal}" /></span>
            </td>
            <td colspan="2"></td></tr>
         <tr><td colspan="8" class="formato_numero">Total IVA:</td>
            <td>
               <span id="txt_suma_iva"><c:out value="${sumaIva}" /></span>
            </td>
            <td colspan="2"></td></tr>
         <tr><td colspan="5"></td>
            <th>Porcentaje IVA: </th><td><form:input path="facturas[0].porcentajeIva" size="3" id="porcentaje_iva" />%</td>
            <td class="formato_numero">Retenci&oacute;n IVA:</td>
            <td><form:input path="retencionIva" size="12" /></td>
            <td colspan="2"></td></tr>
         <tr><td colspan="5"></td>
            <th>Tipo de Cambio:</th><td><form:input path="facturas[0].tipoCambio" size="3" id="tipo_cambio" cssClass="txt_decimal"/></td>
            <td class="formato_numero">Descuento:</td>
            <td><form:input path="descuento" size="12"/></td>
            <td colspan="2"></td></tr>
         <tr><td colspan="8" class="formato_numero">TOTAL:</td>
            <td>
               <span id="txt_suma_total"><c:out value="${sumaIva+sumaSubtotal}" /></span></td>
            <td colspan="2"></td></tr>
      </tbody>
   </table><p>Comentarios del Pedido:</p>
   <form:textarea path="comentarios" cols="60" rows="3" title="Comentarios del Pedido..." maxlength="250" />
   <form:errors path="comentarios" cssClass="error" /><br/>
   <span class="error"><c:out value="${error_bd}" /></span>
   <button type="reset" class="btn_regresar" title="Regresar">Regresar</button>
   <button type="submit" class="btn_guardar" name="guarda" value="guarda" title="Guardar">Guardar</button>
   <button type="submit" class="btn_guardar" name="guarda_envia" value="guarda_envia" title="Guardar y Enviar">Guardar y enviar</button>
</form:form>
<div id="pnl_detalle_proveedor"></div>
<script type="text/javascript">
   $(document).ready(function() {
      $(".fechaFactura").datepicker({
         minDate: "-3M", maxDate: "today", changeMonth: true, numberOfMonths: 2,
         dateFormat: "dd/mm/yy"
      });//.datepicker("setDate", new Date());
      $('#cmb_proveedor').change(function() {
         var proveedor = $(this).val();
         if (proveedor !== '') {
            $.get("pedidos/ots", {np: proveedor})
                    .done(function(data) {
                       $("#pnl_ots").empty().append(data);
                    });
         } else {
            $('#pnl_ots').empty();
         }
      });
      $(".subtotal").keyup(function() {
         var fila = $(this).closest("tr")[0].rowIndex - 1;
         var sub = parseFloat($(this).val());
         var porcentajeIva = parseFloat($("#porcentaje_iva").val()) / 100;
         var iva = sub * porcentajeIva;
         iva = Math.round(iva * 100) / 100;
         $("#montoIva_" + fila).val(iva);
         var totalFila = iva + sub;
         totalFila = Math.round(totalFila * 100) / 100;
         $(".total_fila_" + fila).text(totalFila);
         //sumarTotales();
      }).blur(function() {
         var fila = $(this).closest("tr")[0].rowIndex - 1;
         var sub = parseFloat($(this).val());
         var porcentajeIva = parseFloat($("#porcentaje_iva").val()) / 100;
         var iva = sub * porcentajeIva;
         iva = Math.round(iva * 100) / 100;
         $("#montoIva_" + fila).val(iva);
         var totalFila = iva + sub;
         totalFila = Math.round(totalFila * 100) / 100;
         $(".total_fila_" + fila).text(totalFila);
         sumarTotales();
      });
      $(".montoIva").keyup(function() {
         var fila = $(this).closest("tr")[0].rowIndex - 1;
         var totalFila = parseFloat($(this).val());
         totalFila += parseFloat($("#subtotal_" + fila).val());
         totalFila = Math.round(totalFila * 100) / 100;
         $(".total_fila_" + fila).text(totalFila);
         //sumarTotales();
      }).blur(function() {
         var fila = $(this).closest("tr")[0].rowIndex - 1;
         var totalFila = parseFloat($(this).val());
         totalFila += parseFloat($("#subtotal_" + fila).val());
         totalFila = Math.round(totalFila * 100) / 100;
         $(".total_fila_" + fila).text(totalFila);
         sumarTotales();
      });
      $("#porcentaje_iva").blur(function() {
         //var porcentajeIva = parseFloat($(this).val());
         calcularIvas();
      });
   });
   function validarPedido() {
      var respon = $('#cmb_proveedor').val();
      if (respon === null || '' === respon) {
         alert('Selecciona un Proveedor');
         $('#cmb_proveedor').focus();
         return false;
      } else {
         return true;
      }
   }
   function calcularIvas() {
      $('#tbl_pedido_facs > tbody > tr').each(function() {
         var fila = $(this).closest("tr")[0].rowIndex - 1;
         $("#subtotal_" + fila).focus();
         $("#subtotal_" + fila).blur();
      });
   }
   function sumarTotales() {
      var subtotales = 0;
      var ivas = 0;
      var totales = 0;
      $('#tbl_pedido_facs > tbody  > tr').each(function() {
         $(this).find('.txt_total_fila').each(function() {// key, val
            var valor = $(this).text();
            if (isNaN(valor) || valor.length <= 0) {
               valor = 0;
            }
            totales += parseFloat(valor);
         });
         $(this).find('.subtotal').each(function() {// key, val
            var valor2 = $(this).val();
            if (isNaN(valor2) || valor2.length <= 0) {
               valor2 = 0;
            }
            subtotales += parseFloat(valor2);
         });
         $(this).find('.montoIva').each(function() {// key, val
            var valor3 = $(this).val();
            if (isNaN(valor3) || valor3.length <= 0) {
               valor3 = 0;
            }
            ivas += parseFloat(valor3);
         });
      });
      totales = Math.round(totales * 100) / 100;
      subtotales = Math.round(subtotales * 100) / 100;
      ivas = Math.round(ivas * 100) / 100;
      $("#txt_suma_total").text(totales);
      $("#txt_suma_subtotal").text(subtotales);
      $("#txt_suma_iva").text(ivas);
   }
</script>
<jsp:include page="../comunes/footer.jsp" />